import axios from 'axios';
import { Message } from 'element-ui';
import { Session } from '@/utils/storage';
import envconfig from '@/envconfig.js';

// 创建 Axios 实例
const service = axios.create({
    // 开发环境下不设置 baseURL，使用 vue.config.js 的代理配置
    baseURL: '',
    // baseURL: 'http://192.168.14.18:8880',
    timeout: 50000,
});

// 请求拦截器
// 请求拦截器（不再需要每次加载配置）
service.interceptors.request.use(
    (config) => {
  
          // 解密数据
          try {
            const decryptedData = JSON.parse(Decrypt(config.data.value));
            // 检查解密后的数据是否为空对象
            if (Object.keys(decryptedData).length === 0) {
            } else {
            }
      
            // 在原有数据基础上添加解密字段
            config.data = {
              ...config.data, // 保留原有字段
              decrypted: decryptedData, // 添加解密后的字段
            };
          } catch (error) {
            // console.error('解密数据时出错:', error);
            // 处理解密错误的情况，例如可以选择不修改 config.data
            // config.data = {}; // 如果需要，可以将其设置为空对象
          }
      
      
      if (Session.get('token')) {
        config.headers.common['Token'] = `${Session.get('token')}`;
      }
      return config;
    },
    (error) => Promise.reject(error)
  );

// 响应拦截器
service.interceptors.response.use(
    (response) => response.data,
    (error) => {
        if (error.message.includes('timeout')) {
            Message.error('网络超时');
        } else if (error.message === 'Network Error') {
            Message.error('网络连接错误');
        } else {
            Message.error(error.response?.data?.message || '未知错误');
        }
        return Promise.reject(error);
    }
);

export default service;
